package com.suixun.dao.credits;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.suixun.entity.credits.CreditReord;
import com.suixun.entity.credits.CreditReordExample;

/**
 * 积分记录(明细)
 * 
 * @author yh
 * @date 2017年11月16日
 */
public interface CreditReordMapper {

    /**
     * 统计积分概况
     */
    Map<String, Integer> findSumInfo();

    /**
     * 通过手机号分页查询
     * 
     * @param start
     *            开始显示的条数
     * @param length
     *            总共显示的条数
     * @param tel
     *            用户手机号
     * @return
     */
    List<Map<String, Object>> findPageByTel(@Param("start") Integer start, @Param("length") Integer length,
                                            @Param("tel") String tel);

    /**
     * 通过手机号统计
     * 
     * @param tel
     *            用户手机号
     * @return
     */
    Integer findTotalByTel(@Param("tel") String tel);

    /**
     * 按照日期分页查看积分领取情况
     * 
     * @param taskids
     *            任务ids
     * @param startDate
     *            开始时间
     * @param endDate
     *            结束时间
     * @param start
     *            开始显示的条数
     * @param length
     *            总共显示的条数
     * @return
     */
    List<Map<String, Object>> findPageGetInfo(@Param("taskids") Integer[] taskids, @Param("startDate") Date startDate,
                                              @Param("endDate") Date endDate, @Param("start") Integer start,
                                              @Param("length") Integer length);

    /**
     * 按照日期统计积分领取情况总记录数
     * 
     * @param startDate
     *            开始时间
     * @param endDate
     *            结束时间
     * @return
     */
    Integer findTotalGetInfo(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

    int countByExample(CreditReordExample example);

    int deleteByExample(CreditReordExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(CreditReord record);

    int insertSelective(CreditReord record);

    List<CreditReord> selectByExample(CreditReordExample example);

    CreditReord selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") CreditReord record, @Param("example") CreditReordExample example);

    int updateByExample(@Param("record") CreditReord record, @Param("example") CreditReordExample example);

    int updateByPrimaryKeySelective(CreditReord record);

    int updateByPrimaryKey(CreditReord record);
}